@Allure
2年前 提问
1个回答

c语言运算优先级及运算顺序

Simon
2年前

按运算符优先级从高到低,单目运算符->双目运算符->三目运算符->赋值运算符->逗号运算符,特别在双目运算符中,按运算符优先级从高到低:算术运算符->移位运算符->关系运算符(其中==和!=优先级又较低)->逻辑运算符(按位与->按位异或->按位或->逻辑与->逻辑或)。

C语言运算优先级表如下(由上至下,优先级依次递减)

图片

  1. () [] -> .之类的理所当然是最优先的.

  2. 接下来就是单目运算符优先,也就是! ~ ++ -- - (type) * & sizeof了。

  3. 接着是双目运算符,< <= > >=== !=的优先级来得高。此外,在逻辑运算符中,与运算又比或运算优先级来得高,异或则处于二者之间。同样的,你可以类比出&&||的优先级关系。

  4. 接下来是三目运算符。

  5. 然后是赋值操作符。

  6. 逗号运算符是分割各个子语句的,优先级最低。